package tests;

import org.junit.Test;
import org.junit.Assert;
import modelo.Policia;
import modelo.Recorrido;
import modelo.Ciudad;

public class TestRecorrido {
	
	
	@Test
	public void testPoliciaViaja(){
		
		Ciudad Atenas = new Ciudad("Atenas",37.983971,23.729499, "");
		Ciudad Bagdad = new Ciudad("Bagdad", 33.322875, 44.414270,"");
		Ciudad Bamako = new Ciudad("Bamako", 12.646448,-7.991393,"");
		Ciudad Bangkok = new Ciudad("Bangkok", 13.714595, 100.508141,"");
		
		Recorrido unRecorrido = new Recorrido(Atenas);				
		
		unRecorrido.agregarCiudad(Bagdad);
		unRecorrido.agregarCiudad(Bamako);
		unRecorrido.agregarCiudad(Bangkok);
		
		Assert.assertEquals(Atenas, unRecorrido.devolverDondeEstaElPolicia());
		Assert.assertEquals(Bagdad, unRecorrido.devolverDondeEstaElLadron());
		
		unRecorrido.policiaViajaA(Bagdad);
		
		Assert.assertEquals(Bagdad, unRecorrido.devolverDondeEstaElPolicia());
		Assert.assertEquals(Bamako, unRecorrido.devolverDondeEstaElLadron());
		
	}
	
	@Test
	public void testSiPoliciaViajaAUltimoPaisLadronDebeQuedarseAlli(){
		
		Ciudad Atenas = new Ciudad("Atenas",37.983971,23.729499, "");
		Ciudad Bagdad = new Ciudad("Bagdad", 33.322875, 44.414270,"");
		Ciudad Bamako = new Ciudad("Bamako", 12.646448,-7.991393,"");
		Ciudad Bangkok = new Ciudad("Bangkok", 13.714595, 100.508141,"");
		
		Recorrido unRecorrido = new Recorrido(Atenas);	
		
		unRecorrido.agregarCiudad(Bagdad);
		unRecorrido.agregarCiudad(Bamako);
		unRecorrido.agregarCiudad(Bangkok);		
		
		unRecorrido.policiaViajaA(Bagdad);
		unRecorrido.policiaViajaA(Bamako);
		unRecorrido.policiaViajaA(Bangkok);		
		
		Assert.assertEquals(Bangkok, unRecorrido.devolverDondeEstaElPolicia());
		Assert.assertEquals(Bangkok, unRecorrido.devolverDondeEstaElLadron());
		
	}
	
	
}
